package zero.tech.games.logic.common;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.HashSet;
import java.util.List;
import java.util.Map;
import java.util.Set;

import zero.tech.core.util.StringHelper;
import zero.tech.games.common.playback.Playback;
import zero.tech.games.logic.data.DissolutionData;
import zero.tech.games.logic.data.panel.BigPanel;
import zero.tech.games.logic.data.panel.SmallPanel;

public abstract class RoomCache {
	private final Map<Integer,SmallPanel> smallPanels=new HashMap<>();//小结算面板数据
	private final DissolutionData dissolutionData=new DissolutionData();//解散数据
	private final List<Playback> playbacks=new ArrayList<Playback>();//战绩回放数据
	private final String id = StringHelper.randUUID();//对局id
	private final String room_id;//房间id
	private BigPanel bigPanel;//大结算面板
	
	
	private final Map<Integer,Integer> birds=new HashMap<>();//打鸟数据
	private final Set<Integer> watchers=new HashSet<>();//观战玩家
	private final Set<Integer> taotais=new HashSet<>();//淘汰玩家
	private final Set<Integer> offlines=new HashSet<>();//下线玩家
	private final Set<Integer> advances=new HashSet<>();//提前结算玩家
	public RoomCache(String room_id) {
		this.room_id=room_id;
	}
	public String getId() {
		return id;
	}
	public String getRoom_id() {
		return room_id;
	}
	public DissolutionData getDissolutionData() {
		return dissolutionData;
	}
	public Map<Integer, SmallPanel> getSmallPanels() {
		return smallPanels;
	}
	public BigPanel getBigPanel() {
		return bigPanel;
	}
	public void setBigPanel(BigPanel bigPanel) {
		this.bigPanel = bigPanel;
	}
	public Map<Integer, Integer> getBirds() {
		return birds;
	}
	public Set<Integer> getTaotais() {
		return taotais;
	}
	public Set<Integer> getWatchers() {
		return watchers;
	}
	public Set<Integer> getAdvances() {
		return advances;
	}
	public Set<Integer> getOfflines() {
		return offlines;
	}
	public List<Playback> getPlaybacks() {
		return playbacks;
	}
}
